package cn.xspace.wnx.data;

/**
 * Created by liuchen on 2016/11/12.
 */

import java.util.ArrayList;

import cn.xspace.wnx.entity.WNXBean;
import rx.Observable;

public interface INoticeWnxData {

    Observable<String> insertWnxNotice(WNXBean wnxBean);

    Observable<String> deleteWnxNotice(WNXBean wnxBean);

    Observable<String> deleteAllWnxNoticeByDepId(String depId);

    Observable<ArrayList<WNXBean>> getNoticeList();

    Observable<ArrayList<WNXBean>> getWnxList();

    Observable<String> updateWnxOrgReadStatus(String senderId);

    Observable<String> updateWnxRecordReadStatus(String inserttime, int msg_type);

    Observable<String> updateNoticeReadStatus(String inserttime);

    Observable<Integer> getNoticeCount();

    Observable<Integer> getGroupCount();

    Observable<ArrayList<WNXBean>> getWnxListBySenderid(String senderId, int pageindex);

    Observable<Boolean> isNoticeWnxExist(String msgId);


//    /**
//     * @param wnxBean
//     */
//    public void insertWnxNotice(WNXBean wnxBean) {
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        ContentValues contentValues = new ContentValues();
//        contentValues.put(NoticeDao.COLUMN_TIME_STAMP, wnxBean.inserttime);
//        contentValues.put(NoticeDao.COLUMN_MSG_CONTENT, wnxBean.content);
//        contentValues.put(NoticeDao.COLUMN_MSG_CONTENT_TYPE, wnxBean.msg_content_type);
//        contentValues.put(NoticeDao.COLUMN_MSG_KIND, wnxBean.msg_kind);
//        contentValues.put(NoticeDao.COLUMN_MSG_LOGO, wnxBean.msg_logo);
//        contentValues.put(NoticeDao.COLUMN_MSG_SEND_TIME, wnxBean.msg_send_time);
//        contentValues.put(NoticeDao.COLUMN_MSG_SENDER_ID, wnxBean.msg_sender_id);
//        contentValues.put(NoticeDao.COLUMN_MSG_SENDER_NAME, wnxBean.msg_sender_name);
//        contentValues.put(NoticeDao.COLUMN_MSG_UNREAD_FLAG, wnxBean.msg_unread_flag);
//        contentValues.put(NoticeDao.COLUMN_MSG_TITLE, wnxBean.msg_title);
//        contentValues.put(NoticeDao.COLUMN_MSG_TYPE, wnxBean.msg_type);
//        long resut = sqlDb.insert(NoticeDao.TABLE_NAME, null, contentValues);
//        LogUtil.d(TAG, String.format("插入微农信表 发送人名字为 %s ，结果为%d", wnxBean.msg_sender_name, resut));
//
//    }
//
//    public void updateWnxUnread(String inserttime, int flag) {
//        ContentValues contentValues = new ContentValues();
//        contentValues.put(NoticeDao.COLUMN_MSG_UNREAD_FLAG, flag);
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        int result = sqlDb.update(NoticeDao.TABLE_NAME, contentValues, NoticeDao.COLUMN_TIME_STAMP + " =  ?", new
// String[]{flag + ""});
//        LogUtil.d("更改未读状态>>>" + result);
//    }
//
//    private WNXBean buildNoticeDaoByCusor(Cursor cursor) {
//        WNXBean bean = new WNXBean();
//        bean.inserttime = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_TIME_STAMP));
//        bean.msg_sender_name = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_SENDER_NAME));
//        bean.msg_sender_id = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_SENDER_ID));
//        bean.msg_send_time = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_SEND_TIME));
//        bean.content = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_CONTENT));
//        bean.msg_content_type = cursor.getInt(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_CONTENT_TYPE));
//        bean.msg_kind = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_KIND));
//        bean.msg_logo = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_LOGO));
//        bean.msg_type = cursor.getInt(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_TYPE));
//        bean.msg_unread_flag = cursor.getInt(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_UNREAD_FLAG));
//        bean.msg_title = cursor.getString(cursor.getColumnIndex(NoticeDao.COLUMN_MSG_TITLE));
//        return bean;
//    }
//
//    /**
//     * 获取公告列表
//     *
//     * @return
//     */
//    public ArrayList<WNXBean> getNoticeList() {
//        //排序数序为先读取未读在读取已读，并且都按照时间排序
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        ArrayList<WNXBean> beanList = new ArrayList<>();
//        String unReadSql = " select * from " + NoticeDao.TABLE_NAME +
//                " where  " + NoticeDao.COLUMN_MSG_TYPE + " = " + MessageEntity.MsgType.NOTICE.toNumber() +
//                " order by " + NoticeDao.COLUMN_MSG_UNREAD_FLAG + " ASC ," + NoticeDao.COLUMN_MSG_SEND_TIME + " DESC";
//
//        LogUtil.d("unReadSql>>" + unReadSql);
//        Cursor unreadCur = sqlDb.rawQuery(unReadSql, null);
//        while (unreadCur.moveToNext()) {
//            WNXBean bean = buildNoticeDaoByCusor(unreadCur);
//            beanList.add(bean);
//        }
//        return beanList;
//    }
//
//    /**
//     * 获取微农信列表根据机构分组
//     */
//    public ArrayList<WNXBean> getWnxList() {
//        //根据机构分组 获取最新的提交数据，并将每组的未读数量算出
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        ArrayList<WNXBean> beanList = new ArrayList<>();
//        String sql = "select * " +
//                " where " + NoticeDao.COLUMN_MSG_TYPE + " = " + MessageEntity.MsgType.WNX_MSG.toNumber() +
//                " group by " + NoticeDao.COLUMN_MSG_SENDER_ID +
//                " order by " + NoticeDao.COLUMN_MSG_SEND_TIME + " desc ";
//        Cursor unreadCur = sqlDb.rawQuery(sql, null);
//        while (unreadCur.moveToNext()) {
//            WNXBean bean = buildNoticeDaoByCusor(unreadCur);
//            Cursor countCur = sqlDb.rawQuery(" select count(*)  " +
//                    "from " + NoticeDao.TABLE_NAME +
//                    " where " + NoticeDao.COLUMN_MSG_SEND_TIME + " = " + bean.msg_sender_id +
//                    " and " + NoticeDao.COLUMN_MSG_UNREAD_FLAG + " = 0", null);
//            int count = 0;
//            if (countCur.moveToFirst()) {
//                count = countCur.getInt(0);
//            }
//            bean.unreadCount = count;
//            beanList.add(bean);
//            closeDbAndCursor(countCur);
//        }
//        closeDbAndCursor(unreadCur);
//        LogUtil.d(beanList.toString());
//        return beanList;
//    }
//
//
//    /**
//     * 修改某个机构的所有未读状态为已读
//     *
//     * @param senderId
//     */
//    public void updateWnxOrgReadStatus(String senderId) {
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        ContentValues updateCv = new ContentValues();
//        updateCv.put(NoticeDao.COLUMN_MSG_UNREAD_FLAG, 1);
//        int result = sqlDb.update(NoticeDao.TABLE_NAME, updateCv, NoticeDao.COLUMN_MSG_SENDER_ID + " = ?", new
// String[]{senderId});
//        LogUtil.d("更改机构所有记录未读状态 条数为result>>" + result);
//    }
//
//    public void updateNoticeRecordReadStatus(String inserttime, int msg_type) {
//        SQLiteDatabase sqlDb = dbHelper.getWritableDatabase();
//        ContentValues updateCv = new ContentValues();
//        updateCv.put(NoticeDao.COLUMN_MSG_UNREAD_FLAG, 1);
//        int reulst = sqlDb.update(NoticeDao.TABLE_NAME, updateCv, NoticeDao.COLUMN_TIME_STAMP + " = ?", new
// String[]{inserttime});
//        LogUtil.d("更改单条记录未读状态 条数为result>>" + reulst);
//        if (msg_type == MessageEntity.MsgType.NOTICE.toNumber()) {
//            //公告的话要减去列表的数量
//            boolean isExsit = isExsitMotice(sqlDb, msg_type);
//            LogUtil.d(isExsit + "");
//            int count = otherMap.get(msg_type);
//            LogUtil.d("旧的未读数量》" + count);
//            count -= reulst;
//            LogUtil.d("新的未读数量》" + count);
//            //更新相应记录
//            ContentValues updateValue = new ContentValues();
//            if (count >= 0) {
//                LogUtil.d("大于0");
//                updateValue.put(MessageRecordDao.COLUMN_MSG_UNREAD_COUNT, count);
//            } else {
//                LogUtil.d("小于0");
//                updateValue.put(MessageRecordDao.COLUMN_MSG_UNREAD_COUNT, 0);
//            }
//            int result = sqlDb.update(MessageRecordDao.TABLE_NAME, updateValue, MessageRecordDao.COLUMN_MSG_TYPE,
// new String[]{msg_type + ""});
//            LogUtil.d("更新消息列表未读数量>>" + result + " count >" + count);
//
//        }
//    }
}
